Method and apparatus for erasing data in data section in flash memory

ABSTRACT

A data erasing method and apparatus applied to a flash memory. The method includes receiving a data erasing instruction, where the data erasing instruction instructs to erase data or at least one data section of data sections corresponding to data, when the data erasing instruction instructs to erase the data, searching for recorded storage addresses of all the data sections corresponding to the data, and erasing all the data sections corresponding to the data according to the storage addresses that are found; and when the data erasing instruction instructs to erase the at least one data section of the data sections corresponding to the data, searching for a recorded storage address of the at least one data section, and erasing the at least one data section according to the storage address that is found.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/852,968, filed on Sep. 14, 2015, which is a continuation applicationof International Application No. PCT/CN2013/072773, filed on Mar. 15,2013. Both of the aforementioned applications are hereby incorporated byreference in their entireties.

TECHNICAL FIELD

The present disclosure relates to the field of storage technologies, andin particular, to a data erasing method and apparatus applied to a flashmemory.

BACKGROUND

A flash memory is a type of non-volatile memory that has acharacteristic of retaining data after a power failure. Therefore, theflash memory is widely used as an external memory.

A storage manner of the flash memory is different from that of aconventional mechanical memory. For example, all or some data of a fileis stored in a storage area of the flash memory. When a user re-savesthe data, for example, the user modifies the data and directly savesmodified data, the flash memory does not write the re-saved data intothe original storage area but writes the re-saved data into a newstorage area of the flash memory, and the data in the original storagearea remains unchanged. In this case, it seems that the data has beenoverwritten by the data that is re-saved by the user, but actually, evenif the user deletes the re-saved data, the data before the re-saving bythe user still exists in the flash memory, and persons skilled in theart can still read, by using some technical means or tools, the datathat still exists in the flash memory. Therefore, data leakage cannot beprevented.

To implement that data stored in a flash memory is securely erased, thatis, to erase all data sections that are stored in the flash memory andare related to the data, including data before re-saving and data afterre-saving, two manners are generally provided: one manner is erasing asystem entry of the flash memory to achieve a purpose of datadestruction; the other manner is performing full-disk erasing on theflash memory, that is, full-disk formatting. However, the two erasingmanners have disadvantages. In the first manner, the flash memory cannotbe used again; in the second manner, full-disk data loss may be caused,thereby affecting reading and writing of other data, except data thatneeds to be erased, stored in the flash memory.

SUMMARY

Embodiments of the present disclosure provide a data erasing method andapparatus applied to a flash memory, which can implement secure erasingof data that needs to be erased, without affecting reading and writingof other data, except the data that needs to be erased, stored in theflash memory.

A first aspect of the present disclosure provides a data erasing methodapplied to a flash memory, where the method includes receiving a dataerasing instruction, where the data erasing instruction instructs toerase data or at least one data section of data sections correspondingto data, and erasing, according to the data erasing instruction, a datasection that needs to be erased and that is among the data sectionscorresponding to the data, where when the data erasing instructioninstructs to erase the data, recorded storage addresses of all the datasections corresponding to the data are searched for and all the datasections corresponding to the data are erased according to the storageaddresses that are found, or when the data erasing instruction instructsto erase the at least one data section of the data sectionscorresponding to the data, a recorded storage address of the at leastone data section is searched for and the at least one data section iserased according to the storage address that is found.

In a first possible implementation manner of the first aspect, therecorded storage address of the data section includes a logical blockaddress (LBA) and a data block number (BN), and the erasing a datasection that needs to be erased and that is among the data sectionscorresponding to the data includes determining, according to a BN in astorage address of the data section that needs to be erased, a datablock in which the data section that needs to be erased is stored, anddetermining, according to an LBA in the storage address of the datasection that needs to be erased, a page in which the data section thatneeds to be erased is stored, and searching for and erasing, accordingto the determined data block and page, the data section that needs to beerased.

With reference to the first aspect or the first possible implementationmanner of the first aspect, in a second possible implementation mannerof the first aspect the data corresponds to at least two data sections,and in this case, before the receiving a data erasing instruction, themethod further includes writing the at least two data sectionscorresponding to the data, and recording a storage address of eachwritten data section.

With reference to the second possible implementation manner of the firstaspect, in a third possible implementation manner of the first aspect amap table and a trace log are set in the flash memory, in this case, thewriting the at least two data sections corresponding to the data, andrecording a storage address of each written data section includessuccessively writing the at least two data sections corresponding to thedata, recording, in the map table, a storage address of a latest datasection that corresponds to the data and that is last written, andrecording, in the trace log, a storage address of a historical datasection that is written before the latest data section, and that whenthe data erasing instruction instructs to erase the data, recordedstorage addresses of all the data sections corresponding to the data aresearched for and all the data sections corresponding to the data areerased according to the storage addresses that are found includes whenthe data erasing instruction instructs to erase the data, searching forthe storage address, of the latest data section, recorded in the maptable, and erasing the latest data section according to the storageaddress that is found; and searching for the storage address, of thehistorical data section, recorded in the trace log, and erasing thehistorical data section according to the storage address that is found,or when the data erasing instruction instructs to erase the at least onedata section of the data sections corresponding to the data, if the datasection that is instructed to be erased includes the latest datasection, searching for the storage address, of the latest data section,recorded in the map table, and erasing the latest data section accordingto the storage address that is found; and if the data section that isinstructed to be erased includes the historical data section, searchingfor the storage address, of the historical data section, recorded in thetrace log, and erasing the historical data section according to thestorage address that is found.

With reference to the third possible implementation manner of the firstaspect, in a fourth possible implementation manner of the first aspectthe at least two data sections that are successively written include thelatest data section and a second-latest data section written before thelatest data section, and in this case, the successively writing the atleast two data sections corresponding to the data, recording, in the maptable, a storage address of a latest data section that corresponds tothe data and that is last written, and recording, in the trace log, astorage address of a historical data section that is written before thelatest data section includes writing the second-latest data section, andrecording a storage address of the second-latest data section in the maptable, and writing the latest data section, transferring the storageaddress, of the second-latest data section, recorded in the map table tothe trace log, and recording the storage address of the latest datasection in the map table.

With reference to the third possible implementation manner of the firstaspect or the fourth possible implementation manner of the first aspect,in a fifth possible implementation manner of the first aspect, themethod further includes determining whether free storage space of thetrace log is less than a storage space threshold, and when the freestorage space of the trace log is less than the storage space threshold,reclaiming storage space of the historical data section in a forcedmanner according to the storage address, of the historical data section,recorded in the trace log, and releasing storage space in which thestorage address of the reclaimed historical data section is recorded inthe trace log.

With reference to the first aspect or any implementation manner of theforegoing possible implementation manners of the first aspect, in asixth possible implementation manner of the first aspect, after all thedata sections corresponding to the data are erased or the at least onedata section is erased, the method further includes erasing the recordedstorage address of the erased data section.

With reference to the first aspect or any implementation manner of theforegoing possible implementation manners of the first aspect, in aseventh possible implementation manner of the first aspect, the erasinga data section that needs to be erased and that is among the datasections corresponding to the data includes re-writing the data sectionthat needs to be erased, and erasing a re-written data section.

With reference to the first aspect or any implementation manner of theforegoing possible implementation manners of the first aspect, in aneighth possible implementation manner of the first aspect, the methodfurther includes erasing a data section corresponding to junk datastored in the flash memory to acquire blank storage space, and erasing ahistorically recorded storage address of the data section correspondingto the junk data.

A second aspect of the present disclosure provides a data erasingapparatus applied to a flash memory, where the apparatus includes areceiving unit configured to receive a data erasing instruction, wherethe data erasing instruction instructs to erase data or at least onedata section of data sections corresponding to data, and an erasing unitconfigured to erase, according to the data erasing instruction receivedby the receiving unit, a data section that needs to be erased and thatis among the data sections corresponding to the data, where when thedata erasing instruction instructs to erase the data, recorded storageaddresses of all the data sections corresponding to the data aresearched for and all the data sections corresponding to the data areerased according to the storage addresses that are found, or when thedata erasing instruction instructs to erase the at least one datasection of the data sections corresponding to the data, a recordedstorage address of the at least one data section is searched for and theat least one data section is erased according to the storage addressthat is found.

In a first possible implementation manner of the second aspect, therecorded storage address of the data section includes a LBA and a dataBN, and the erasing unit is configured to determine, according to a BNin a storage address of the data section that needs to be erased, a datablock in which the data section that needs to be erased is stored, anddetermine, according to an LBA in the storage address of the datasection that needs to be erased, a page in which the data section thatneeds to be erased is stored, and search for and erase, according to thedetermined data block and page, the data section that needs to beerased.

With reference to the second aspect or the first possible implementationmanner of the second aspect, in a second possible implementation mannerof the second aspect the data corresponds to at least two data sections,and the apparatus further includes a writing unit configured to writethe at least two data sections corresponding to the data, and record astorage address of each written data section.

With reference to the second possible implementation manner of thesecond aspect, in a third possible implementation manner of the secondaspect a map table and a trace log are set in the flash memory, in thiscase, the writing unit is configured to successively write the at leasttwo data sections corresponding to the data, record, in the map table, astorage address of a latest data section that corresponds to the dataand that is last written, and record, in the trace log, a storageaddress of a historical data section that is written before the latestdata section, and the erasing unit is configured to when the dataerasing instruction instructs to erase the data, search for the storageaddress, of the latest data section, recorded in the map table, anderase the latest data section according to the storage address that isfound; and search for the storage address, of the historical datasection, recorded in the trace log, and erase the historical datasection according to the storage address that is found.

With reference to the third possible implementation manner of the secondaspect, in a fourth possible implementation manner of the second aspectthe at least two data sections that are successively written by thewriting unit include the latest data section and a second-latest datasection written before the latest data section, and in this case, thewriting unit is configured to write the second-latest data section, andrecord a storage address of the second-latest data section in the maptable, and write the latest data section, transfer the storage address,of the second-latest data section, recorded in the map table to thetrace log, and record the storage address of the latest data section inthe map table.

With reference to the third possible implementation manner of the secondaspect or the fourth possible implementation manner of the secondaspect, in a fifth possible implementation manner of the second aspect,the apparatus further includes a determining unit configured todetermine whether free storage space of the trace log is less than astorage space threshold, and the erasing unit is further configured to:when the free storage space of the trace log is less than the storagespace threshold, reclaim storage space of the historical data section ina forced manner according to the storage address, of the historical datasection, recorded in the trace log, and release storage space in whichthe storage address of the reclaimed historical data section is recordedin the trace log.

With reference to the second aspect or any implementation manner of theforegoing possible implementation manners of the second aspect, in asixth possible implementation manner of the second aspect, the erasingunit is further configured to erase the recorded storage address of theerased data section.

With reference to the second aspect or any implementation manner of theforegoing possible implementation manners of the second aspect, in aseventh possible implementation manner of the second aspect, the erasingunit is configured to re-write the data section that needs to be erased,and erase a re-written data section.

With reference to the second aspect or any implementation manner of theforegoing possible implementation manners of the second aspect, in aneighth possible implementation manner of the second aspect, the erasingunit is further configured to: erase a data section corresponding tojunk data stored in the flash memory to acquire blank storage space; anderase a historically recorded storage address of the data sectioncorresponding to the junk data.

A third aspect of the present disclosure provides another data erasingapparatus applied to a flash memory, where the apparatus includes aprocessor, a memory, a communications interface, and a bus, where theprocessor, the memory, and the communications interface are connected toand communicate with each other by using the bus, the memory isconfigured to store executable program code, the processor runs, byreading the executable program code stored in the memory, a programcorresponding to the executable program code, so as to receive a dataerasing instruction, where the data erasing instruction instructs toerase data or at least one data section of data sections correspondingto data, and erase, according to the data erasing instruction, a datasection that needs to be erased and that is among the data sectionscorresponding to the data, where when the data erasing instructioninstructs to erase the data, recorded storage addresses of all the datasections corresponding to the data are searched for and all the datasections corresponding to the data are erased according to the storageaddresses that are found, or when the data erasing instruction instructsto erase the at least one data section of the data sectionscorresponding to the data, a recorded storage address of the at leastone data section is searched for and the at least one data section iserased according to the storage address that is found.

In a first possible implementation manner of the third aspect, a storageaddress, of each data section, recorded by the processor includes a LBAand a data BN, and the processor is configured to determine, accordingto a BN in a storage address of the data section that needs to beerased, a data block in which the data section that needs to be erasedis stored, and determine, according to an LBA in the storage address ofthe data section that needs to be erased, a page in which the datasection that needs to be erased is stored, and search for and erase,according to the determined data block and page, the data section thatneeds to be erased.

With reference to the third aspect or the first possible implementationmanner of the third aspect, in a second possible implementation mannerof the third aspect the data corresponds to at least two data sections,and in this case, the processor is configured to write the at least twodata sections corresponding to the data, and record a storage address ofeach written data section.

With reference to the second possible implementation manner of the thirdaspect, in a third possible implementation manner of the third aspect amap table and a trace log are set in the flash memory, in this case, theprocessor is configured to successively write the at least two datasections corresponding to the data, record, in the map table, a storageaddress of a latest data section that corresponds to the data and thatis last written, and record, in the trace log, a storage address of ahistorical data section that is written before the latest data section,and when the data erasing instruction instructs to erase the data,search for the storage address, of the latest data section, recorded inthe map table, and erase the latest data section according to thestorage address that is found; and search for the storage address, ofthe historical data section, recorded in the trace log, and erase thehistorical data section according to the storage address that is found.

With reference to the third possible implementation manner of the thirdaspect, in a fourth possible implementation manner of the third aspectthe at least two data sections that are successively written by theprocessor include the latest data section and a second-latest datasection written before the latest data section, and in this case, theprocessor is configured to write the second-latest data section, andrecord a storage address of the second-latest data section in the maptable, and write the latest data section, transfer the storage address,of the second-latest data section, recorded in the map table to thetrace log, and record the storage address of the latest data section inthe map table.

With reference to the third possible implementation manner of the thirdaspect or the fourth possible implementation manner of the third aspect,in a fifth possible implementation manner of the third aspect, theprocessor is further configured to determine whether free storage spaceof the trace log is less than a storage space threshold, and when thefree storage space of the trace log is less than the storage spacethreshold, reclaim storage space of the historical data section in aforced manner according to the storage address, of the historical datasection, recorded in the trace log, and release storage space in whichthe storage address of the reclaimed historical data section is recordedin the trace log.

With reference to the third aspect or any implementation manner of theforegoing possible implementation manners of the third aspect, in asixth possible implementation manner of the third aspect, the processoris further configured to erase the recorded storage address of theerased data section.

With reference to the third aspect or any implementation manner of theforegoing possible implementation manners of the third aspect, in aseventh possible implementation manner of the third aspect, theprocessor is configured to re-write the data section that needs to beerased, and erase a re-written data section.

With reference to the third aspect or any implementation manner of theforegoing possible implementation manners of the third aspect, in aneighth possible implementation manner of the third aspect, the processoris further configured to erase a data section corresponding to junk datastored in the flash memory to acquire blank storage space; and erase ahistorically recorded storage address of the data section correspondingto the junk data.

A fourth aspect of the present disclosure provides a flash memory, wherea data erasing apparatus is disposed in the flash memory, and the dataerasing apparatus is the data erasing apparatus provided in the secondaspect or any implementation manner of the foregoing possibleimplementation manners of the second aspect of the present disclosure orthe data erasing apparatus provided in the third aspect or anyimplementation manner of the foregoing possible implementation mannersof the third aspect.

In a first possible implementation manner of the fourth aspect, theflash memory includes any one of the following a solid state drive, asmart media (SM) card, a compact flash (CF) card, an multimedia card(MMC), a secure digital (SD) memory card, a memory stick, an XD-picturecard, and a microdrive.

According to the data erasing method applied to a flash memory, the dataerasing apparatus, and the flash memory that are provided in theembodiments of the present disclosure, when erasing is performed on dataafter a data erasing instruction is received, a recorded storage addressis searched for according to the data erasing instruction, and a datasection that needs to be erased and that is among data sectionscorresponding to the data is erased. In this way, each written datasection can be found according to a storage address of the data section,and therefore all the data sections corresponding to the data can becompletely erased, thereby implementing secure erasing of the data. Inaddition, one or several specified data sections can be erased accordingto a user requirement, without affecting reading and writing of otherdata, except the data that needs to be erased.

BRIEF DESCRIPTION OF DRAWINGS

To describe the technical solutions in the embodiments of the presentdisclosure more clearly, the following briefly introduces theaccompanying drawings required for describing the embodiments. Theaccompanying drawings in the following description show merely someembodiments of the present disclosure, and persons of ordinary skill inthe art may still derive other drawings from these accompanying drawingswithout creative efforts.

FIG. 1 is a schematic flowchart of a data erasing method according to anembodiment of the present disclosure.

FIG. 2 is another schematic flowchart of a data erasing method accordingto an embodiment of the present disclosure.

FIG. 3 is an exemplary schematic diagram of a data erasing methodaccording to an embodiment of the present disclosure.

FIG. 4 is another schematic flowchart of a data erasing method accordingto an embodiment of the present disclosure.

FIG. 5 is a schematic structural diagram of a data erasing apparatusaccording to an embodiment of the present disclosure.

FIG. 6 is another schematic structural diagram of a data erasingapparatus according to an embodiment of the present disclosure.

FIG. 7 is another schematic structural diagram of a data erasingapparatus according to an embodiment of the present disclosure.

FIG. 8 is another schematic structural diagram of a data erasingapparatus according to an embodiment of the present disclosure.

DESCRIPTION OF EMBODIMENTS

The following clearly describes the technical solutions in theembodiments of the present disclosure with reference to the accompanyingdrawings in the embodiments of the present disclosure. The describedembodiments are merely a part rather than all of the embodiments of thepresent disclosure. All other embodiments obtained by persons ofordinary skill in the art based on the embodiments of the presentdisclosure without creative efforts shall fall within the protectionscope of the present disclosure.

To enable persons skilled in the art to better understand the technicalsolutions of the present disclosure, a storage structure of a flashmemory related to the present disclosure is briefly introduced first.

A flash memory generally includes an internal register and a memorymatrix, where the memory matrix includes blocks, each block furtherincludes pages, and each page further includes bytes. For example, 4224bytes may form one page, 128 pages form one block, and 8192 blocks forman entire flash memory.

Generally, the flash memory reads and writes data by page, that is, theflash memory reads and writes data one page by one page, which alsomeans that one page of data needs to be read at a time and one page ofdata needs to be written at a time.

The following describes in detail a data erasing method and apparatusthat are applied to a flash memory and that are provided in theembodiments of the present disclosure.

It should be noted that, in the embodiments of the present disclosure,“erase” and “delete” are similar in concept.

An embodiment of the present disclosure provides a data erasing methodthat is executed by a flash memory and is executed by a data erasingapparatus disposed in the flash memory, where the flash memory isconnected to a computer host, and a user performs, by using the host, anoperation on data stored in the flash memory.

As shown in FIG. 1, an embodiment of the present disclosure provides adata erasing method applied to a flash memory, including the followingsteps 101: Receive a data erasing instruction, where the data erasinginstruction instructs to erase data or at least one data section of datasections corresponding to data.

Preferably, it may be that the data erasing instruction is received by adata erasing apparatus from a host. The data erasing instruction sent bythe host may instruct the data erasing apparatus to erase the data orthe at least one data section of the data sections corresponding to thedata.

In the embodiment of the present disclosure, each piece of data isstored in the flash memory, and in the flash memory, each piece of dataactually corresponds to at least one data section. In the embodiment ofthe present disclosure, that “each piece of data corresponds to at leastone data section” indicates that, when a piece of data is initiallystored in the flash memory and is not re-saved, the piece of datacorresponds to only one data section, that is, original data of thepiece of data. It may be known from the foregoing description inBackground that, when the piece of data is re-saved once, for example, auser modifies the original data of the piece of data and performs directsaving, the flash memory retains the original data and meanwhile storesa piece of modified data. In this case, the piece of data corresponds totwo data sections: one is the original data that is initially stored andthe other is the modified data re-saved this time. By analogy, one datasection corresponding to the piece of data is added each time re-savingis performed. That is, in the embodiment of the present disclosure, datasections corresponding to each piece of data include original data ofthe piece of data and data re-saved each time.

It should be noted that, in the embodiment of the present disclosure,“re-saving” means saving again but not saving as. The re-savingindicates that the user intends to overwrite a previous file with datasaved this time. That is, after the re-saving is performed, an originalfile before the re-saving is replaced with a re-saved file and isinvisible to the user.

In the embodiment of the present disclosure, when erasing is performedon the piece of data, the user delivers a data erasing instruction tothe flash memory by using the host, where the data erasing instructionmay instruct to erase the piece of data, that is, to erase all datasections corresponding to the piece of data, or may instruct to eraseone or several data sections of data sections corresponding to the pieceof data.

102: Erase, according to the data erasing instruction, a data sectionthat needs to be erased and that is among the data sectionscorresponding to the data.

Optionally, when the data erasing instruction instructs to erase thedata, recorded storage addresses of all the data sections correspondingto the data are searched for and all the data sections corresponding tothe data are erased according to the storage addresses that are found.

Optionally, when the data erasing instruction instructs to erase the atleast one data section of the data sections corresponding to the data, arecorded storage address of the at least one data section is searchedfor and the at least one data section is erased according to the storageaddress that is found.

In the embodiment of the present disclosure, when data is stored in theflash memory, that is, when the data is written, a storage address ofeach data section corresponding to the data is recorded. For example, astorage address, of each data section, recorded by the flash memory mayinclude a LBA and a BN. It should be noted that herein the recorded LBAmay also be recorded as a logical block number (LBN), and the LBA andthe LBN have a same meaning and are both logical addresses, onlydiffering in a size of represented storage space. There is acorrespondence between the LBA and a physical block address (PBA), wherethe PBA is used to record a physical location of data in the flashmemory, that is, in which page the data is recorded. In a case in whichan LBA is known, a PBA corresponding to the LBA can be known, so thatdata is found by using the PBA.

If a recorded storage address includes an LBA and a BN, the flash memorydetermines, according to the BN, a data block of the data section thatneeds to be erased in the flash memory, and determines, according to theLBA, According to a mapping relationship between the LBA and a PBA, apage in which the data section that needs to be erased is located in, soas to find and erase the data section that needs to be erased.

Therefore, in this step, if the data erasing instruction instructs toerase the piece of data, all the data sections corresponding to thepiece of data are found according to storage addresses recorded when thepiece of data is written, and data erasing is performed, that is, allthe data sections corresponding to the piece of data can be completelyerased, thereby implementing secure erasing of the data. In addition, ifthe data erasing instruction instructs to erase the at least one datasection of the data sections corresponding to the data, a storageaddress of the at least one data section may be found, and then the atleast one data section is found and erased, without affecting readingand writing of other data stored in the flash memory.

According to the data erasing method applied to a flash memory providedin the embodiment of the present disclosure, when erasing is performedon data after a data erasing instruction is received, a recorded storageaddress is searched for according to the data erasing instruction, and adata section that needs to be erased and that is among data sectionscorresponding to the data is erased. In this way, each written datasection can be found according to a storage address of the data section,and therefore all the data sections corresponding to the data can becompletely erased, thereby implementing secure erasing of the data. Inaddition, one or several specified data sections can be erased accordingto a user requirement, without affecting reading and writing of otherdata except the data that needs to be erased.

As shown in FIG. 2, a data erasing method provided in an embodiment ofthe present disclosure includes the following steps S11: Write datasections corresponding to data, and record a storage address of eachwritten data section.

In this step, each piece of data corresponds to at least two datasections, that is, in this step, the written data sections include atleast two data sections.

It should be noted that, in the embodiment of the present disclosure,that each piece of data corresponds to at least one data sectionindicates that, when a piece of data is initially stored in the flashmemory and is not re-saved, the piece of data corresponds to only onedata section, that is, original data of the piece of data. It may beknown from the foregoing description in Background that, when the pieceof data is re-saved once, for example, a user modifies the original dataof the piece of data and performs direct saving, the flash memoryretains the original data and meanwhile stores a piece of modified data.In this case, the piece of data corresponds to two data sections: one isthe original data that is initially stored and the other is the modifieddata re-saved this time. By analogy, one data section corresponding tothe piece of data is added each time re-saving is performed. That is, inthe embodiment of the present disclosure, data sections corresponding toeach piece of data include original data of the piece of data and datare-saved each time.

It should be noted that, in the embodiment of the present disclosure,“re-saving” means saving again but not saving as. The re-savingindicates that the user intends to overwrite a previous file with datasaved this time. That is, after the re-saving is performed, an originalfile before the re-saving is replaced with a re-saved file and isinvisible to the user.

Therefore, in this step, writing data sections corresponding to eachpiece of data is actually writing original data of the piece of data,and then successively writing, according to a time sequence ofre-saving, data obtained each time the piece of data is re-saved.Certainly, if the piece of data has never been re-saved, only theoriginal data of the piece of data is written in this step.

It should be noted that a process of writing each data section issimilar to that, and details are not described herein.

Different from the, in this step, each time a data section is written, astorage address of the data section in the flash memory is recorded, sothat any written data section corresponding to each piece of data can befound by using a recorded storage address. Therefore, when erasing isperformed on data sections corresponding to one piece of data, each datasection corresponding to the piece of data can be found by using arecorded storage address, and all the data sections corresponding to thepiece of data can be completely erased, thereby implementing secureerasing of the data. In addition, one or several data sections of thepiece of data can be erased according to a user requirement, withoutaffecting reading and writing of other data stored in the flash memory.

in this step, the storage address of each data section recorded by theflash memory may include a LBA and a data BN. It should be noted thatherein the recorded LBA may also be recorded as an LBN, and the LBA andthe LBN have a same meaning and are both logical addresses, onlydiffering in a size of represented storage space.

There is a correspondence between the LBA and a PBA, where the PBA isused to record a physical location of data in the flash memory, that is,in which page the data is recorded. In a case in which an LBA is known,a PBA corresponding to the LBA can be known, so that data is found byusing the PBA.

For example, assuming that data sections corresponding to data A arewritten in this step, a format for recording a storage address of thedata A may be: (logical block address, data block number). Withreference to FIG. 2, in this step, firstly, the user delivers, to ahost, an instruction of storing the data A in the flash memory; the hostsends original data of the data A to the flash memory and delivers awrite command to the flash memory; and the flash memory writes theoriginal data n corresponding to the data A and records a storageaddress of the data section n as (LBAn, BlockN), where n represents theoriginal data section corresponding to the data A. Next, the usermodifies the original data section n that is stored in the flash memoryand performs re-saving, where data obtained after the user modifies nand performs the re-saving is referred to as n′ herein. According to astorage principle of the flash memory, on a premise that n remainsunchanged, the flash memory writes n′ into a storage area different fromthat of n, and records a storage address of the updated data section n′as (LBAn′, BlockM), where n′ represents a latest data sectioncorresponding to the data A. It can be understood that n still exists inthe flash memory, but for the user, the data n has been replaced withn′. Then, the user modifies the data n′ that is stored in the flashmemory and performs re-saving, where data obtained after the usermodifies n′ and performs the re-saving is referred to as n″ herein. Astorage address of the data section n″ is recorded as (LBAn“, BlockA);in this case, n” replaces n′ and becomes the latest data sectioncorresponding to the data A. In this case, it can be understood that n′still exists in the flash memory, but for the user, the data n′ has beenreplaced with n″. It should be noted that LBAn, LBAn′, and LBAn″ areused herein to represent recorded logical block addresses correspondingto the three data sections n, n′, and n″ respectively, but LBAn, LBAn′,and LBAn″ actually have a same value.

That is, the data A corresponds to three data sections, n, n′, and n″.In this step, the three data sections corresponding to the data A arewritten successively and the storage addresses corresponding to thethree data sections are recorded separately, where: n″ is last written,that is, written at a latest time, and may be referred to as the latestdata section corresponding to the data A; data n and data n′ are writtenbefore n″ and may be referred to as historical data sectionscorresponding to the data A. Certainly, regardless of a quantity of datasections corresponding to each piece of data, a data section that islast written, that is, written at a latest time, is a latest datasection corresponding to the piece of data, and a data section writtenbefore the latest data section is a historical data section. For theuser, the historical data section is invisible, that is, the historicaldata section has been replaced with the latest data section; however,the historical data section still exists in the flash memory.

It can be understood that the manner of recording a storage address inthe foregoing example is merely exemplary, but is not intended to limitthe present disclosure, and persons skilled in the art may choosemultiple manners of recording a storage address. In addition, for easeof understanding, in the example, each data section of the data A isonly written into one page of one block. However, it can be understoodthat each data section of the data A can actually be written intomultiple pages or even into multiple pages of multiple blocks; in thiscase, when a storage address is recorded, multiple addresses may berecorded for each data section in a sequence according to a data sectionwriting situation.

It should be noted that storage space used to record the storage addressof each written data section may be allocated from storage space of theflash memory or may be allocated from an external non-volatile mediumconnected to the flash memory, which is not limited by the presentdisclosure.

S12: Receive a data erasing instruction, where the data erasinginstruction instructs to erase the data or at least one data section ofthe data sections corresponding to the data.

In this step, when the user needs to erase a piece of data on the flashmemory, the user sends a data erasing instruction to the flash memory byusing the host, so that the flash memory erases the piece of data. Thedata erasing instruction sent to the flash memory by the host mayinstruct to erase a piece of data or may instruct to erase one orseveral data sections of data sections corresponding to data. In theembodiment of the present disclosure, when the data erasing instructionsent to the flash memory by the host instructs to erase the piece ofdata, it indicates that all data sections corresponding to the data needto be erased, and in the embodiment of the present disclosure, this typeof data erasing instruction that instructs to erase all the datasections corresponding to the data is referred to as a secure dataerasing instruction.

The user sends the data erasing instruction to the flash memory by usingthe host. For example, a secure data erasing instruction delivered byusing the host may include an LBA and a data length, where the datalength is a data length corresponding to a latest data section, so thatthe flash memory determines, according to the LBA and the data length,that data sections that the host instructs to erase are all datasections of the piece of data. If the data erasing instruction is anerasing instruction (which may be referred to as a non-secure erasingindication in this case) that instructs to erase one or several datasections of the data sections corresponding to the data, a non-securedata erasing instruction delivered by using the host may include an LBA,a data length, and a data section identifier, where the data length is alength of a data section that needs to be erased, and the hostindicates, by using the data section identifier, a data section that thehost instructs to erase. Alternatively, it may be determined, accordingto the LBA and the data length, that data sections that the hostinstructs to erase are data sections of multiple pieces of data (forexample, more than 2); in this case, each data section of each piece ofdata is erased separately. Certainly, the foregoing secure data erasinginstruction is merely exemplary, and persons skilled in the art canstill make a selection or modification.

S13: According to the data erasing instruction and the recorded storageaddress, erase a data section that needs to be erased and that is amongthe written data sections.

If the data erasing instruction received in step S12 is a secure dataerasing instruction, in this step, the flash memory finds, according tothe recorded storage addresses, all the data sections corresponding tothe data, and erases all the data sections, thereby implementing secureerasing of the data. The flash memory may first read a recorded storageaddress of a latest data section corresponding to the data and erase thelatest data section according to the read storage address; then theflash memory reads, according to an inverse sequence of writing time, arecorded storage address of a historical data section corresponding tothe data, and erases, according to the read storage address, thehistorical data section corresponding to the data. In this way, both thelatest data section and the historical data section of the data in theflash memory are completely erased, thereby ensuring that the data isnot leaked and improving data security.

It should be noted that, if the data erasing instruction instructs toerase one or several data sections of the data sections corresponding tothe data, the flash memory reads storage addresses of these datasections recorded by the flash memory, so as to find these data sectionsand erase these data sections.

Similarly, in the example shown in step S11, with reference to FIG. 3,if the data erasing instruction received in step S12 instructs to erasethe data A, in this step, the flash memory first reads the storageaddress, recorded by the flash memory, of the latest data section n″ ofthe data A, finds n″ according to the read storage address, and erasesn″; then, the flash memory reads the storage address of the historicaldata section n′ according to the writing time of the data sections,finds n′ according to the read storage address, and erases n′; next, theflash memory reads the storage address of the historical data section n,finds n according to the read storage address, and erases n. So far, allthe data sections corresponding to the data A are erased, therebyimplementing secure erasing of the data A.

To effectively ensure erasing security, that is, to effectively ensurethat data that needs to be erased leaves no residue and cannot berestored, when the flash memory performs an erasing operation, the flashmemory may first re-write data sections of the data that need to beerased. That is, the flash memory may first find, according to storageaddresses corresponding to the data sections that need to be erased,storage areas in which the data sections are stored, perform datare-writing on the areas at least once to write the data in the areas inan incorrect manner or a disordered manner, and then erase re-writtendata sections in the areas. Therefore, data erasing security is furtherimproved.

It should be noted that a quantity of re-writing times may be determinedaccording to importance of a data section that is instructed to beerased. For example, a security level may be set for a data section. Amore important data section has a higher secure level, and the datasection needs to be re-written for more times when data is erased. Asfor how to set security levels and divide data sections into securitylevels of a data section and how to specify a correspondence between asecurity level of a data section and a quantity of re-writing times, nolimitation is imposed in the present disclosure.

According to the data erasing method applied to a flash memory providedin the embodiment of the present disclosure, a storage address of eachdata section is recorded when each data section corresponding to data iswritten; and when erasing is performed on the data after a data erasinginstruction is received, a data section that needs to be erased and thatis among the written data sections is erased according to the dataerasing instruction and the recorded storage address. In this way,because the storage address of each data section is recorded when eachdata section is written, any written data section can be found accordingto the storage address of each data section. Therefore, all datasections corresponding to the data can be completely erased, therebyimplementing secure erasing of the data. In addition, one or severalspecified data sections can be erased according to a user requirement,without affecting reading and writing of other data.

Further, to effectively improve a utilization rate of storage space, inan embodiment of the present disclosure, after the data section thatneeds to be erased is erased in step S13, the recorded storage addressof the data section that is erased may further be erased.

Optionally, to effectively improve a utilization rate of storage space,in an embodiment of the present disclosure, a data erasing methodapplied to a flash memory provided in the embodiment of the presentdisclosure may further include the following steps erasing a datasection corresponding to junk data stored in the flash memory to acquireblank storage space, and erasing a historically recorded storage addressof the data section corresponding to the junk data.

In the flash memory, there is some junk data that is generated due tooperations of the flash memory such as reading and writing. For example,a map table is generally set in the flash memory, and if the flashmemory performs a write operation, content recorded in the map table ischanged, and an originally recorded part of the content is invalid andbecomes junk data. According to the method provided in the embodiment ofthe present disclosure, when the junk data is written, a storage addressof a data section corresponding to the junk data is also recorded.Therefore, to effectively improve a utilization rate of storage space,the flash memory may reclaim the junk data and erase the junk data and astorage address of the junk data periodically or upon triggering of aninstruction, so as to acquire blank storage space for other use andeffectively improve the utilization rate of the storage space.

Generally, a map table used to record a storage address of a latest datasection corresponding to each piece of data is set in a flash memory.When the flash memory performs a write operation and re-saves a datasection corresponding to a piece of data, the data section written uponthe write operation becomes a latest data section corresponding to thepiece of data. In this case, a storage address of the latest datasection written upon the write operation this time is recorded in anentry of the map table, and a storage address of an original latest datasection that is originally recorded in the map table becomes invalid.

In an embodiment of the present disclosure, in addition to setting a maptable, an area is allocated form the flash memory and is set as arecording area, and this area is called a trace log in the presentdisclosure. The map table still plays a role, that is it is used torecord a storage address of a latest data section corresponding to eachpiece of data, while the trace log is used to record a storage addressof a historical data section corresponding to each piece of data.Similarly, the aforementioned data A is used as an example. As shown inFIG. 4, this embodiment includes Step 21: Successively write the threedata sections n, n′, and n″ corresponding to the data A, and record thestorage addresses of the three data sections.

The storage address of the latest data section n″ that is last writtenis recorded in the map table, and the storage addresses of thehistorical data sections n and n′ that are written before the latestdata section n″ are recorded in the trace log, where n′ is writtenbefore n″ and may be referred to as a second-latest data section, and nis written in the earliest and may be referred to as the original datasection.

It can be understood that each time a data section is written, thewritten data section must be a latest data section. Therefore, in thisstep, when a storage address is recorded, the flash memory records astorage address of a latest data section in the map table; when a latestdata section is written again, the original latest data section that iswritten at a previous time becomes a second-latest data section (thatis, a historical data section). In this case, the flash memory may readthe storage address of the second-latest data section from the maptable, transfer the storage address of the second-latest data section tothe trace log, that is, store the storage address of the second-latestdata section in the trace log, record, in the map table, a storageaddress of the latest data section stored this time, and then make thestorage address, of the second-latest data section, recorded in the maptable become invalid.

Therefore, in this step, firstly, the flash memory writes the datasection n, and records the storage address of n in the map table; then,the flash memory writes the data section n′, records the storage addressof n′ in the map table, reads the storage address of n from the maptable and stores the storage address of n in the trace log, and makesthe storage address of n that is recorded in the map table becomeinvalid; next, the flash memory writes the data section n″, records thestorage address of n″ in the map table, reads the storage address of n′from the map table and stores the storage address of n′ in the tracelog, and makes the storage address of n′ that is recorded in the maptable become invalid.

Step 22: Receive a data erasing instruction, where the data erasinginstruction instructs to erase the data A.

Step 23: Erase, according to the data erasing instruction and therecorded storage addresses, the three data sections n, n′, and n″corresponding to the data A, thereby implementing secure erasing of thedata A.

The flash memory reads the recorded storage address of the latest datasection n″ from the map table, so as to find and erase n″; the flashmemory reads the recorded storage address of the second-latest datasection n′ from the trace log, so as to find and erase n′; and the flashmemory reads the recorded storage address of the original data section nfrom the trace log, so as to find and erase n.

It can be understood that, if the data erasing instruction instructs toerase one or two of the three data sections of A, for example, instructsto erase n and n′, the flash memory reads the recorded storage addressof the second-latest data section n′ and the storage address of theoriginal data section n from the trace log, so as to find and erase n′and n.

Assuming that the data erasing instruction instructs to erase n′ and n″,the flash memory reads the recorded storage address of the latest datasection n″ from the map table, so as to find and erase n″, and reads therecorded storage address of the second-latest data section n′ from thetrace log, so as to find and erase n′.

Further, due to limited storage space of the trace log, to ensure normaloperation of the flash memory, after the data sections n, n′, and n″ areerased, the flash memory may erase the storage addresses, of the datasections n and n′, recorded in the trace log, so as to provide the tracelog with sufficient storage space.

In addition, optionally, a storage space threshold may be set for thestorage space of the trace log. When free storage space of the trace logis less than the storage space threshold, that is, when the free storagespace of the trace log is insufficient, the flash memory may reclaimstorage space of historical data sections in a forced manner accordingto storage addresses, of the historical data sections, recorded in thetrace log, and release storage space in which the storage addresses ofthe reclaimed historical data sections are recorded in the trace log.

It can be understood that storage addresses of historical data sectionscorresponding to multiple pieces of data are recorded in the trace log,and the historical data sections still exist in the flash memory;however, for a user, the historical data sections are data that isuseless and has been overwritten. Therefore, the flash memory mayreclaim all or some of the historical data sections, and release, afterthe historical data sections are reclaimed, storage space in which thestorage addresses of the reclaimed historical data sections are recordedin the trace log, so as to ensure that the trace log has sufficientstorage space.

It should be noted that, in the embodiment of the present disclosure,when the storage space in the flash memory is insufficient, data in adata block with a low utilization rate needs to be completely erased inthe flash memory for reclaiming a blank data block, so as to achieve anobjective of releasing the storage space of the flash memory. The datablock with a low utilization rate refers to a data block in which thereare a larger quantity of historical data sections and a smaller quantityof latest data sections, and for the user, the larger quantity ofhistorical data sections and the smaller quantity of latest datasections in the data block mean that there are a larger amount ofinvalid data and a smaller amount of valid data in the data block;therefore, the utilization rate of the data block is low. Therefore,when the storage space in the flash memory is insufficient, a latestdata section in the data block with a low utilization rate may betransferred to another data block, and then the data block with a lowutilization rate becomes a block full of invalid data, that is, a fulldirty block with a utilization rate of zero. In this case, all data inthe data block is erased, so that the data block is reclaimed, and thestorage space of the flash memory is released. In this case, a storageaddress, of an erased data section in the full dirty block, recorded inthe trace log is meaningless; therefore, the storage address of theerased data section may be deleted from the trace log.

According to the data erasing method applied to a flash memory providedin the present disclosure, a storage address of each data section isrecorded when each data section corresponding to data is written, andwhen erasing is performed on the data after a data erasing instructionis received, a data section that needs to be erased and that is amongthe written data sections is erased according to the data erasinginstruction and the recorded storage address. In this way, because thestorage address of each data section is recorded when each data sectionis written, any written data section can be found according to thestorage address of each data section. Therefore, all data sectionscorresponding to the data can be completely erased, thereby implementingsecure erasing of the data. In addition, one or several specified datasections can be erased according to a user requirement, withoutaffecting reading and writing of other data.

Correspondingly, an embodiment of the present disclosure furtherprovides a data erasing apparatus 30 applied to a flash memory, and asshown in FIG. 5, the apparatus 30 includes a receiving unit 31configured to receive a data erasing instruction, where the data erasinginstruction instructs to erase data or at least one data section of datasections corresponding to data, and an erasing unit 32 configured toerase, according to the data erasing instruction received by thereceiving unit 31, a data section that needs to be erased and that isamong the data sections corresponding to the data, where when the dataerasing instruction instructs to erase the data, recorded storageaddresses of all the data sections corresponding to the data aresearched for and all the data sections corresponding to the data areerased according to the storage addresses that are found, or when thedata erasing instruction instructs to erase the at least one datasection of the data sections corresponding to the data, a recordedstorage address of the at least one data section is searched for and theat least one data section is erased according to the storage addressthat is found.

According to the data erasing apparatus 30 applied to a flash memoryprovided in the embodiment of the present disclosure, when erasing isperformed on data after a data erasing instruction is received, arecorded storage address is searched for according to the data erasinginstruction, and a data section that needs to be erased and that isamong data sections corresponding to the data is erased. In this way,each written data section can be found according to a storage address ofthe data section, and therefore all the data sections corresponding tothe data can be completely erased, thereby implementing secure erasingof the data. In addition, one or several specified data sections can beerased according to a user requirement, without affecting reading andwriting of other data except the data that needs to be erased.

The embodiment of the present disclosure may be used to execute theforegoing method embodiments. For details, reference is made to thedescriptions of the method embodiments.

An embodiment of the present disclosure further provides a data erasingapparatus 20 applied to a flash memory, and as shown in FIG. 6, theapparatus 20 includes a writing unit 201 configured to write at leastone data section corresponding to data, and record a storage address ofeach written data section, a receiving unit 202 configured to receive adata erasing instruction, where the data erasing instruction instructsto erase at least one data section of data sections written by thewriting unit 201, and an erasing unit 203 configured to erase, accordingto the data erasing instruction received by the receiving unit 202 andthe recorded storage address, the data section that the data erasinginstruction instructs to erase.

According to the data erasing apparatus 20 applied to a flash memoryprovided in the embodiment of the present disclosure, an erasing unit203 erases, according to a storage address of each data section recordedwhen a writing unit 201 writes each data section corresponding to data,and according to a data erasing instruction received by a receiving unit202, a data section that needs to be erased and that is among the datasections written by the writing unit 201. In this way, because thestorage address of each data section is recorded when each data sectionis written, any written data section can be found according to thestorage address of each data section. Therefore, all data sectionscorresponding to the data can be completely erased, thereby implementingsecure erasing of the data. In addition, one or several specified datasections can be erased according to a user requirement, withoutaffecting reading and writing of other data.

Optionally, in an embodiment of the present disclosure, a storageaddress of each data section recorded by the writing unit 201 includesan LBA and a BN.

The erasing unit 203 is configured to determine, according to a BN in astorage address of the data section that needs to be erased, a datablock in which the data section that needs to be erased is stored, anddetermine, according to an LBA in the storage address of the datasection that needs to be erased, a page in which the data section thatneeds to be erased is stored; and search for and erase, according to thedetermined data block and page, the data section that needs to beerased.

To effectively ensure erasing security, that is, to effectively ensurethat data that needs to be erased leaves no residue and cannot berestored, when the erasing unit 203 performs an erasing operation, theerasing unit 203 may first re-write data sections of the data that needto be erased. That is, the erasing unit 203 may first find, according tostorage addresses corresponding to the data sections that need to beerased, storage areas in which the data sections are stored, perform atleast one round of data re-writing on the areas to write the data in theareas in an incorrect manner or a disordered manner, and then erasere-written data sections in the areas. Therefore, data erasing securityis further improved.

Optionally, to effectively improve a utilization rate of storage space,in an embodiment of the present disclosure, the erasing unit 203 isfurther configured to erase the storage addresses of the erased datasections recorded by the writing unit 201.

Further, in an embodiment of the present disclosure, the erasing unit203 is further configured to: erase a data section corresponding to junkdata stored in the flash memory to acquire blank storage space; anderase a historically recorded storage address of the data sectioncorresponding to the junk data.

Optionally, in an embodiment of the present disclosure, the datacorresponds to at least two data sections.

In this case, the writing unit 201 is configured to write the at leasttwo data sections corresponding to the data, and record a storageaddress of a latest data section that corresponds to the data and thatis last written and a storage address of a historical data section thatis written before the latest data section.

The erasing unit 203 is configured to if the data erasing instructioninstructs to erase the data, read the recorded storage address of thelatest data section, and erase the latest data section according to theread storage address; and read the recorded storage address of thehistorical data section, and erase the historical data section accordingto the read storage address, or

If the data erasing instruction instructs to erase one or several datasections of the data sections corresponding to the data, read therecorded storage address or storage addresses of the one or several datasections, and erase the one or several data sections according to theread storage address or storage addresses.

Optionally, in an embodiment of the present disclosure the writing unit201 writes at least two data sections, and a map table and a trace logare set in the data erasing apparatus 20, where the map table is used torecord a storage address of a latest data section corresponding to eachpiece of data, and the trace log is used to record a storage address ofa historical data section corresponding to each piece of data.

In this case, the writing unit 201 is configured to successively writethe at least two data sections corresponding to the data, record, in themap table, a storage address of a latest data section that correspondsto the data and that is last written, and record, in the trace log, astorage address of a historical data section that is written before thelatest data section.

The erasing unit 203 is configured to if the data erasing instructioninstructs to erase the data, read the storage address, of the latestdata section, recorded in the map table, and erase the latest datasection according to the read storage address; and read the storageaddress, of the historical data section, recorded in the trace log, anderase the historical data section according to the read storage address.

Further, in an embodiment of the present disclosure, the at least twodata sections that are successively written include the latest datasection and a second-latest data section written before the latest datasection.

In this case, the writing unit 201 is configured to write thesecond-latest data section, and record a storage address of thesecond-latest data section in the map table, and write the latest datasection, transfer the storage address, of the second-latest datasection, recorded in the map table to the trace log, and record thestorage address of the latest data section in the map table.

Further, in an embodiment of the present disclosure, as shown in FIG. 7,the apparatus 20 further includes a determining unit 204 configured todetermine whether free storage space of the trace log is less than astorage space threshold, and the erasing unit 203 is further configuredto: if the determining unit 204 determines that the free storage spaceof the trace log is less than the storage space threshold, reclaimstorage space of the historical data section in a forced manneraccording to the storage address, of the historical data section,recorded in the trace log, and release storage space in which thestorage address of the reclaimed historical data section is recorded inthe trace log.

It should be noted that, for a specific function of each structural unitof the data erasing apparatus 20 provided in the embodiment of thepresent disclosure, reference is made to the foregoing methodembodiments.

FIG. 8 shows another embodiment of a data erasing apparatus according tothe present disclosure. As shown in FIG. 8, a data erasing apparatus 40provided in this embodiment includes a processor 401, a memory 402, acommunications interface 403, and a bus 404. The processor 401, thememory 402, and the communications interface 403 are connected to andcommunicate with each other by using the bus 404. The bus 404 may be anindustry standard architecture (ISA) bus, a peripheral componentinterconnect (PCI) bus, an extended industry standard architecture(EISA) bus, or the like. The bus 404 may be divided into an address bus,a data bus, a control bus, and the like. For ease of representation, thebus in FIG. 8 is represented by using only one thick line, but it doesnot mean that there is only one bus or only one type of bus.

The memory 402 is configured to store executable program code, where theprogram code includes a computer operation instruction. The memory 402may include a high-speed random access memory (RAM), or may furtherinclude a non-volatile memory, for example, at least one magnetic diskmemory.

The processor 401 runs, by reading the executable program code stored inthe memory 402, a program corresponding to the executable program code,so as to receive a data erasing instruction, where the data erasinginstruction instructs to erase data or at least one data section of datasections corresponding to data, and erase, according to the data erasinginstruction, a data section that needs to be erased and that is amongthe data sections corresponding to the data, where when the data erasinginstruction instructs to erase the data, recorded storage addresses ofall the data sections corresponding to the data are searched for and allthe data sections corresponding to the data are erased according to thestorage addresses that are found, or when the data erasing instructioninstructs to erase the at least one data section of the data sectionscorresponding to the data, a recorded storage address of the at leastone data section is searched for and the at least one data section iserased according to the storage address that is found.

In an embodiment of the present disclosure, the processor 401 isconfigured to write data sections corresponding to data, where the datacorresponds to at least one data section, and record a storage addressof each written data section, receive a data erasing instruction, wherethe data erasing instruction instructs to erase the data or the at leastone data section of data sections corresponding to the data, andaccording to the data erasing instruction and the recorded storageaddress, erase a data section that needs to be erased and that is amongthe written data sections.

According to the data erasing apparatus applied to a flash memoryprovided in the embodiment of the present disclosure, a processor 401erases, according to a storage address of each written data sectionrecorded when data is written, and according to a received data erasinginstruction, a data section that needs to be erased and that is amongthe written data sections, that is, a data section that the data erasinginstruction instructs to erase. In this way, any written data sectioncan be found according to the storage address of each data section.Therefore, all the data sections corresponding to the data can becompletely erased, thereby implementing secure erasing of the data. Thatis, the data erasing apparatus 40 can not only implement secure erasingof data but also erase a specified data section according to a userrequirement, without affecting reading and writing of other data afterthe specified data is erased.

Optionally, in an embodiment of the present disclosure, a storageaddress, of each data section, recorded by the processor 401 includes alogical block address, LBA, and a data BN.

The processor is configured to determine, according to a BN in a storageaddress of the data section that needs to be erased, a data block inwhich the data section that needs to be erased is stored, and determine,according to an LBA in the storage address of the data section thatneeds to be erased, a page in which the data section that needs to beerased is stored, and search for and erase, according to the determineddata block and page, the data section that needs to be erased.

Optionally, in an embodiment of the present disclosure, the processor401 is further configured to erase the recorded storage address of theerased data section.

Optionally, in an embodiment of the present disclosure, the processor401 is further configured to re-write the data section that needs to beerased and that is among the written data sections, and erase are-written data section.

Optionally, to effectively improve a utilization rate of storage space,in an embodiment of the present disclosure, the processor 401 is furtherconfigured to erase a data section corresponding to junk data stored inthe flash memory to acquire blank storage space; and erase ahistorically recorded storage address of the data section correspondingto the junk data.

Optionally, in an embodiment of the present disclosure, the datacorresponds to at least two data sections.

The processor 401 is configured to write the at least two data sectionscorresponding to the data, and record a storage address of a latest datasection that corresponds to the data and that is last written and astorage address of a historical data section that is written before thelatest data section.

In this case, the processor 401 is configured to if the data erasinginstruction instructs to erase the data, read the recorded storageaddress of the latest data section, and erase the latest data sectionaccording to the read storage address; and read the recorded storageaddress of the historical data section, and erase the historical datasection according to the read storage address, or

if the data erasing instruction instructs to erase one or several datasections of the data sections corresponding to the data, read therecorded storage address or storage addresses of the one or several datasections, and erase the one or several data sections according to theread storage address or storage addresses.

Optionally, in an embodiment of the present disclosure, each piece ofdata corresponds to at least two data sections; a map table and a tracelog are set in the data erasing apparatus 40. The map table is used torecord a storage address of a latest data section corresponding to eachpiece of data, and the trace log is used to record a storage address ofa historical data section corresponding to each piece of data.

In this case, the processor 401 is configured to successively write theat least two data sections corresponding to the data, record, in the maptable, a storage address of a latest data section that corresponds tothe data and that is last written, and record, in the trace log, astorage address of a historical data section that is written before thelatest data section.

When performing an erasing operation, the processor 401 is configured toif the data erasing instruction instructs to erase the data, read thestorage address, of the latest data section, recorded in the map table,and erase the latest data section according to the read storage address;and read the storage address, of the historical data section, recordedin the trace log, and erase the historical data section according to theread storage address.

Further, in an embodiment of the present disclosure, the at least twodata sections that are successively written include the latest datasection and a second-latest data section written before the latest datasection.

In this case, the processor 401 is configured to write the second-latestdata section, and record a storage address of the second-latest datasection in the map table, and write the latest data section, transferthe storage address, of the second-latest data section, recorded in themap table to the trace log, and record the storage address of the latestdata section in the map table.

Optionally, in an embodiment of the present disclosure, the processor401 is further configured to: determine whether free storage space ofthe trace log is less than a storage space threshold; and if it isdetermined that the free storage space of the trace log is less than thestorage space threshold, reclaim storage space of the historical datasection in a forced manner according to the storage address, of thehistorical data section, recorded in the trace log, and release storagespace in which the storage address of the reclaimed historical datasection is recorded in the trace log.

The processor 401 may be a central processing unit (CPU) or anapplication-specific integrated circuit (ASIC), or may be configured asone or more integrated circuits that implement the embodiment of thepresent disclosure.

It should be noted that, in addition to the foregoing functions, theforegoing processor 401 may further be configured to execute otherprocesses in the foregoing method embodiments, and details are notrepeatedly described herein.

It should further be noted that, for division of functional units in theprocessor 401, reference may be made to the foregoing embodiments of thedata erasing apparatus, and details are not repeatedly described herein.

Correspondingly, an embodiment of the present disclosure furtherprovides a flash memory, where a data erasing apparatus is disposed inthe flash memory, and the data erasing apparatus may be any data erasingapparatus provided in the foregoing embodiments, which is not repeatedlydescribed herein.

According to the flash memory provided in the embodiment of the presentdisclosure, a data section that needs to be erased and that is amongwritten data sections can be erased according to a storage address, ofeach written data section, recorded when data is written, and accordingto a received data erasing instruction. In this way, any written datasection can be found according to the storage address of each datasection. Therefore, all the data sections corresponding to the data canbe completely erased, thereby implementing secure erasing of the data.That is, the flash memory not only implements secure erasing of data butalso can erase a specified data section according to a user requirement,without affecting reading and writing of other data after the specifieddata is erased.

Optionally, in an embodiment of the present disclosure, the flash memorymay be any one flash memory of the following, but is not limited to thefollowing a solid state drive, a SM card, a CF card, a MMC, a SD card, amemory stick, an XD card, and a microdrive.

It should be noted that the data erasing method applied to a flashmemory, the data erasing apparatus applied to a flash memory, and theflash memory that are provided in the embodiments of the presentdisclosure may be widely applied to NAND Flash control in the field ofstorage, and in particular, to an solid state disk (SSD) system of theNAND Flash, which is not limited in the present disclosure.

The embodiments in this specification are all described in a progressivemanner, for same or similar parts in the embodiments, reference may bemade to these embodiments, and each embodiment focuses on a differencefrom other embodiments. Especially, an apparatus embodiment is basicallysimilar to a method embodiment, and therefore is described briefly; forrelated parts, reference may be made to partial descriptions in themethod embodiment.

It should be noted that the described apparatus embodiment is merelyexemplary. The units described as separate parts may or may not bephysically separate, and parts displayed as units may or may not bephysical units, may be located in one position, or may be distributed ona plurality of network units. Some or all of the modules may be selectedaccording to actual requirements to achieve the objectives of thesolutions of the embodiments. In addition, in the accompanying drawingsof the apparatus embodiments provided by the present disclosure,connection relationships between modules indicate that the modules havecommunication connections with each other, which may be implemented asone or more communications buses or signal cables. Persons of ordinaryskill in the art may understand and implement the embodiments of thepresent disclosure without creative efforts.

Based on the description of the foregoing implementation manners,persons skilled in the art may clearly understand that the presentdisclosure may be implemented by software in addition to necessaryuniversal hardware, or by dedicated hardware, including a dedicatedintegrated circuit, a dedicated CPU, a dedicated memory, a dedicatedcomponent, and the like. Generally, any functions that can be performedby a computer program can be easily implemented by using correspondinghardware. Moreover, a specific hardware structure used to achieve a samefunction may be of various forms, for example, in a form of an analogcircuit, a digital circuit, a dedicated circuit, or the like. However,as for the present disclosure, software program implementation is abetter implementation manner in most cases. Based on such anunderstanding, the technical solutions of the present disclosureessentially or the part contributing to the may be implemented in a formof a software product. The software product is stored in a readablestorage medium, such as a floppy disk, a universal serial bus (USB)flash drive, a removable hard disk, a read-only memory (ROM), a RAM, amagnetic disk, or an optical disc of a computer, and includes severalinstructions for instructing a computer device (which may be a personalcomputer, a server, a network device, and the like) to perform themethods described in the embodiments of the present disclosure.

The foregoing descriptions are merely specific implementation manners ofthe present disclosure, but are not intended to limit the protectionscope of the present disclosure. Any variation or replacement readilyfigured out by persons skilled in the art within the technical scopedisclosed in the present disclosure shall fall within the protectionscope of the present disclosure. Therefore, the protection scope of thepresent disclosure shall be subject to the protection scope of theclaims.

What is claimed is:
 1. A data erasing method applied to a flash memory,comprising: receiving a data erasing instruction, wherein the dataerasing instruction includes a logical block address corresponding tolatest version data stored in a latest data section and to historicalversion data stored in a historical data section, wherein the latestversion data is obtained by modifying one of one or more historicalversion data including the historical data section; searching in amapping table for a physical storage address of the latest data sectionbased on the logical block address; searching in a trace log for aphysical storage address of the historical data section based on thelogical block address; and erasing all data in the latest data sectionidentified by the physical storage address of the latest data sectionand in the historical data section identified by the physical storageaddress of the historical data section.
 2. The method according to claim1, further comprising: storing the historical version data to thephysical storage address of the historical data section; recording thephysical storage address of the historical data section in the mappingtable; storing the latest version data to the physical storage addressof the latest data section; transferring the physical storage address ofthe historical data section recorded in the mapping table to the tracelog; and recording the physical storage address of the latest datasection in the mapping table.
 3. The method according to claim 1,wherein the step of erasing comprises: re-writing data to the physicalstorage address of the latest data section and the physical storageaddress of the historical data section; and erasing the re-written datain the physical storage address of the latest data section and thephysical storage address of the historical data section.
 4. The methodaccording to claim 1, further comprising: erasing a junk data sectioncorresponding to junk data stored in the flash memory to acquire blankstorage space.
 5. A data erasing apparatus applied to a flash memory,comprising: an interface; and at least one processor coupled to theinterface; wherein the interface is configured to receive a data erasinginstruction, wherein the data erasing instruction includes a logicalblock address corresponding to latest version data stored in a latestdata section and historical version data stored in a historical datasection, wherein the latest version data is obtained by modifying one ofone or more historical version data including the historical datasection; the at least one processor is configured to: search in amapping table for a physical storage address of the latest data sectionbased on the logical block address; search in a trace log for a physicalstorage address of the historical data section based on the logicalblock address; and erase all data in the latest data section identifiedby the physical storage address of the latest data section and in thehistorical data section identified by the physical storage address ofthe historical data section.
 6. The apparatus according to claim 5,wherein the at least one processor is further configured to: store thehistorical version data to the physical storage address of thehistorical data section; record the physical storage address of thehistorical data section in the mapping table; store the latest versiondata to the physical storage address of the latest data section;transfer the physical storage address of the historical data sectionrecorded in the mapping table to the trace log; and record the physicalstorage address of the latest data section in the mapping table.
 7. Theapparatus according to claim 5, wherein the at least one processor isfurther configured to: rewrite data to the physical storage address ofthe latest data section and the physical storage address of thehistorical data section; and erase the re-written data in the physicalstorage address of the latest data section and the physical storageaddress of the historical data section.
 8. The apparatus according toclaim 5, wherein the at least one processor is further configured to:erase a junk data section corresponding to junk data stored in the flashmemory to acquire blank storage space.
 9. A data erasing method appliedto a flash memory, comprising: receiving a data erasing instruction,wherein the data erasing instruction includes a logical block addressand a data section identifier, the logical block address corresponds tolatest version data stored in a latest data section and historicalversion data stored in a historical data section, the data sectionidentifier is used to indicate one or more of the latest data sectionand the historical data section, wherein the latest version data isobtained by modifying one of one or more historical version dataincluding the historical data section; searching in at least one of amapping table and a trace log for a physical storage address of a datasection corresponding to a section identifier based on the logical blockaddress and the data section identifier, wherein the mapping tablerecords a physical address of the latest data section, the trace logrecords a physical address of the historical data section; and erasingall data in the data section identified by the physical storage addressof the data section.
 10. The method according to claim 9, furthercomprising: storing the historical version data to the physical storageaddress of the historical data section; recording the physical storageaddress of the historical data section in the mapping table; storing thelatest version data to the physical storage address of the latest datasection; transferring the physical storage address of the historicaldata section recorded in the mapping table to the trace log; andrecording the physical storage address of the latest data section in themapping table.
 11. The method according to claim 9, wherein the step oferasing comprises: re-writing data to the data section identified by thephysical storage address of the data section; and erasing the re-writtendata in the physical storage address of the data section.
 12. The methodaccording to claim 9, further comprising: erasing a junk data sectioncorresponding to junk data stored in the flash memory to acquire blankstorage space.
 13. A data erasing apparatus applied to a flash memory,comprising: an interface; and at least one processor coupled to theinterface; wherein the interface is configured to receive a data erasinginstruction, wherein the data erasing instruction includes a logicalblock address and a data section identifier, the logical block addresscorresponds to latest version data stored in a latest data section andhistorical version data stored in a historical data section, the datasection identifier is used to indicate one or more of the latest datasection and the historical data section, wherein the latest version datais obtained by modifying one of one or more historical version dataincluding the historical data section; the at least one processor isconfigured to: search in at least one of a mapping table and a trace logfor a physical storage address of a data section corresponding to asection identifier based on the logical block address and the datasection identifier, wherein the mapping table records a physical addressof the latest data section, the trace log records a physical address ofthe historical data section; and erase all data in the data sectionidentified by the physical storage address of the data section.
 14. Theapparatus according to claim 13, wherein the at least one processor isfurther configured to: re-write data to the data section identified bythe physical storage address of the data section; and erase there-written data in the physical storage address of the data section. 15.The apparatus according to claim 13, wherein the at least one processoris further configured to: erase a junk data section corresponding tojunk data stored in the flash memory to acquire blank storage space.